// ex3_5.c

// xp in rdi
// yp in rsi
// zp in rax
// x in r8
// y in rcx
// z in rax

// decode1:
//         movq    (%rdi), %r8
//         movq    (%rsi), %rcx
//         movq    (%rdx), %rax
//         movq    %r8, (%rsi)
//         movq    %rcx, (%rdx)
//         movq    %rax, (%rdi)
//         ret
void decode1(long *xp, long *yp, long *zp)
{
    long x = *xp;
    long y = *yp;
    long z = *zp;
    *yp = x;
    *zp = y;
    *xp = z;
}